package com.erastep.mvc.ifc
{
	import com.erastep.mvc.module.vo.ModuleVO;
	
	

	/**
	 * @date 2011.4.22
	 * @author Jarvis
	 * */
	public interface IFrame extends INotifier
	{
		 
		 /**
		 * mediatorName
		 * */
		 function retriveMediator(mediatorName:String):IMedator;
		 
		 /**
		 * register mediator
		 * */
		 function registerMediator(mediator:IMedator):void;
		 
		 /**
		 * remove mediator
		 * */
		 function removeMediator(mediatorName:String):void;
		 
		 /**
		 * register proxy
		 * */
		 function registerProxy(proxy:IProxy):void;
		 
		 /**
		 * retrive proxy
		 * */
		 function retriveProxy(proxyName:String):IProxy;
		 
		 /**
		 * remove proxy
		 * */
		 function removeProxy(proxyName:String):void;
		 
		 /**
		 * register module
		 * */
		 function registerModule(resourceId:String,cls:Class):void;
		 
		 /**
		 * retrive module
		 * */
		 function retrieveModule(comandName:String,moduleKey:String = null):IModule;
         
		 /**
		 * have load module
		 * */
		 function hasLoadedModule(resourceId:String):Boolean
			 
	     /**
		 * find pluging
		 * */
		 function findDataByPluginId(pluginId:String):ModuleVO;
		 
		 /**
		 * find module by formid and systemid
		 * */
		 function findTemplateVoBySF(systemId:int,formId:int):ModuleVO;
		 
		 /**
		 * get resource by id
		 * */
		 function getResourceById(moduleId:String,resourceId:String):Object;
		 
		 /**
		 * get user code
		 * */
		 function get user():Object;
		 
		 function get tempSendData():Object;
	}
}